import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:injectable/injectable.dart';
import 'package:{{project_name.snakeCase()}}/features/home/domain/usecases/get_home_items.dart';
import 'package:{{project_name.snakeCase()}}/features/home/presentation/cubit/home_state.dart';

@injectable
class HomeCubit extends Cubit<HomeState> {
  HomeCubit(this._getHomeItems) : super(const HomeState.initial());

  final GetHomeItems _getHomeItems;

  Future<void> loadItems() async {
    emit(const HomeState.loading());
    final result = await _getHomeItems();
    result.match(
      (failure) => emit(HomeState.error(failure.message)),
      (items) => emit(HomeState.loaded(items)),
    );
  }
}
